ffmpeg用alpha通道透明度代替黑色片段

您所在的位置:网站首页 ffmpeg alpha通道 ffmpeg用alpha通道透明度代替黑色片段

ffmpeg用alpha通道透明度代替黑色片段

2023-03-26 01:05| 来源: 网络整理| 查看: 265

问题描述

我有file.mov视频.它具有许多空白的黑色片段,这些片段的持续时间不同.

我需要替换出透明度超过5秒的黑色片段.是否可以为此添加一些alpha频道?

对穆尔维亚的答案评论:

惊人的解决方案.在#2部分,一切正常.

使用#1节我创建了此代码:

output=$(ffprobe -f lavfi -i "movie=file.mov,blackdetect=d=3.5" -show_entries tags=lavfi.black_start,lavfi.black_end -of compact=p=0 -v 0|awk '!/^$/') echo $output

使用awk '!/^$/'删除空线.

这是我得到的输出:

输出 /a /p

p tag:lavfi.black_start重复几次相同的值,没有合适的结构tag:lavfi.black_end /p

p如果我将blackdetect=d=3.5更改为其他值,则对于Exaple d=10,它将输出与d=3.5相同的结果.我如何解决此问题,具有正确的tag:lavfi.black_start,tag:lavfi.black_end synthax,synthax具有正确的grepping d=值?/p
h2 style=推荐答案

#1 运行BlackDetect以识别片段

ffprobe -f lavfi -i "movie=file.mov,blackdetect=d=3.5" -show_entries tags=lavfi.black_start,lavfi.black_end -of compact=p=0 -v 0

编辑:由于过滤器中的怪癖,必须使用ffmpeg获取此数据

下面的命令将数据保存到文本文件中.

ffmpeg -f lavfi -i movie=file.mov,blackdetect=d=3.5,metadata=print:file=- -f null - -hide_banner -v 0 | grep lavfi > times.txt

这将打印一组持久的黑色段的时间代码至少3.5秒.

#2 添加alpha并将片段的alpha更改为0

ffmpeg -i file.mov -vf format=rgba,colorchannelmixer=aa=0:enable='between(t,12.4,16.1)+between(t,55.1,60.0)+between(t,62.9,69.2)' -c:v libvpx-vp9 -crf 10 -b:v 0 out.mkv

在表达式之间的每个表达式中都是黑色片段的开始时间和结束时间.

如果要将结果保存为文件,则需要选择支持Alpha的编解码器,例如上述命令中的一个.如果您的文件已经具有alpha,请跳过格式过滤器.

本文地址:https://www.itbaoku.cn/post/2433643.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3